1. Field of the Invention
The present invention relates generally to computer software for filling out form documents over a computer network. More particularly, the present invention provides a method and system for automatically filling out fields in an electronic form document on a browser program using a remote server.
2. Discussion of Prior Art
Rapid growth and technological advances have changed the way most people currently use computers. During the early days of computers, a paradigm existed whereby there were more computer users than computers, and thus most computers had many assigned or dedicated users. As technology progressed, the personal computer (xe2x80x9cPCxe2x80x9d) emerged, and it became commonplace for many computers to have only one user. Subsequent growth, particularly in the 1990s, has seen a culture or paradigm emerge whereby a computer user has access to more than one computer. As such, many individuals now have substantial access to multiple computers, for example at workplaces, schools, libraries, homes, and while traveling. This ratio of available computers per computer user should increase even further over time. It is therefore increasingly desirable to have computer-based programs and services that are accessible to a particular user from any computer, and not just those computers that have been programmed or adapted for that particular user.
One result of the recent explosion in computer growth is the amount of communication that now takes place between separate computers or computer systems. Many methods and systems exist for communications between computers or computer systems. This is reflected in many contexts, such as in the growth of the Internet. For purposes of the following discussion, several methods and systems will be described with reference to the Internet as a matter of convenience. It should be understood, however, that this is not intended to limit the scope of this discussion, and that many other applicable devices and protocols for computer communications exist, such as xe2x80x9cIntranetsxe2x80x9d, closed proxy networks, enterprise-wide networks, direct modem to modem connections, etc.
A browser program capable of running one or more windows may utilize a simple process for communicating information among computers over the Internet, as illustrated in FIG. 1. Typically, an independent Internet user 106, from a pool of random independent Internet users 101-106, opens a browser window 131 in an Internet browser program, depicted by arrow 161. User 106 then enters a request for an Internet Web page 144 (i.e. an HTML page) to be downloaded into browser window 131 belonging to user 106. User 106""s request is processed by the browser program, and a connection, depicted by arrow 162, is made with the appropriate remote Internet resource 112, typically an Internet Web server, selected from a pool of random remote 20 Internet resources 110-112. Remote Internet resource 112 returns an HTML document 143, depicted by arrow 163. HTML document 143 contains substantially the entire content needed to display completed Web page 144. Web page 144 is then displayed back to user 106 in browser window 131, depicted by arrow 164.
A model known in the art as the xe2x80x9cad serverxe2x80x9d model advances this simple browser program method for communicating information over the Internet. Many Internet Web pages are composite pages, requiring information in the form of images, text, and/or code to be pulled from several different remote Internet resources. Ad servers are generally used to integrate directed electronic material, such as banner advertisements, into such composite Internet Web pages. Thus, ad servers are one example of a remote Internet resource that separately contributes material to a composite Web page. A computer network communication process utilizing an ad server is also depicted in FIG. 1.
Independent internet user 102 opens a browser window 130 in his or her Internet browser program, depicted by arrow 151. User 102 then enters a request for an Internet Web page 142 to be downloaded into browser window 130. This request is processed by the browser program, and a connection, depicted by arrow 152, is made with the appropriate remote Internet resource 110, typically an Internet Web server. Remote Internet resource 110 returns a core HTML document 140, depicted by arrow 153. Core document 140 contains some displayable content and an additional link to another image 141, in this case a banner advertisement, stored at a separate remote Internet resource 120, in this case an ad server. The browser program parses core document 140 to find and use this link to retrieve image 141. The browser program then makes a connection, depicted by arrow 154, with remote Internet resource 120 to retrieve image 141. Remote Internet resource 120 returns image 141 to the browser program, depicted by arrow 155. Image 141 is then merged with the displayable content of core document 140 to comprise completed Web page 142. Web page 142 is then displayed back to user 102 in browser window 130, depicted by arrow 156. It should be appreciated that this process may be repeated many times for many separate portions of a particular Web page. In fact, many Web pages contain links to dozens of separate remote Internet resources, requiring this process to be repeated for each separate link.
Many remote Internet resources assign a specific user identifier containing state information, referred to as a session identifier or xe2x80x9ccookiexe2x80x9d, to each particular user whenever a user connects to the resource, for example to retrieve an Internet Web page. This cookie is deposited into the user""s browser program, which is instructed to show the cookie to the resource upon subsequent visits so that the resource can identify the user. The cookie conveys to the resource who the user is and what document or component thereof that the user wants. Use of these cookies is vital when components are assembled from various remote Internet resources into one integrated Web page, as a resource for a core HTML document may require several visits or communications from a Web browser while a page is assembled. Without such cookies, use of composite Web pages would be substantially hindered. Many resources assign temporary cookies for this purpose, which expire at the end of a session or when the browser program is closed. Other cookies, however, are assigned for longer durations for identification purposes beyond one Internet session. One such purpose identifies users, through long-term or persistent cookies, to specific user history and preferences, such that information, for example content specific banner advertisements related to such user history and preferences, may be directed at identified users in the future.
Proxy systems generally group many individual computers and computer users into a single network. This network is typically served by a single proxy server, which serves as a conduit for all communications among individual network users and between any individual network user and any outside remote electronic resource or user. A proxy server may provide several useful functions, such as faster communication between network users, firewall protection for all network computers, and large and efficient storage. One example of efficient storage by a proxy server occurs when one network user requests a Web page from a remote resource that has recently been retrieved by another network user. Rather than retrieve the same Web page from the same remote resource again, the proxy server may simply deliver the Web page that has been stored on it from the previous request. It should be appreciated that while the use of proxy servers alters the path through which information and communication may travel, such use does not substantially alter the basic functions of the methods and systems described herein.
In general, many methods may be used to assist a user in filling out an electronic form document. One such method is referred to as the xe2x80x9cwalletxe2x80x9d method, which may be found, for example, at xe2x80x9ceWalletxe2x80x9d located at http://www.ewallet.com. This method requires a user to download a software application and install it onto his or her computer. The user is then required to input personal information items into the application, including the user""s name, address, and credit card information, which is stored on the user""s computer for future use. The user is then able to use this xe2x80x9ceWalletxe2x80x9d application and inputted personal information items to automatically fill out electronic form documents that are affiliated with the xe2x80x9ceWalletxe2x80x9d application. Whenever the user desires to fill out an affiliated electronic form document, the user opens the xe2x80x9ceWalletxe2x80x9d application and clicks and drags a virtual credit card from the virtual wallet onto the form document. The xe2x80x9ceWalletxe2x80x9d application then automatically inserts the inputted personal information items into the document. The click and drag step must be repeated for each page of the electronic form document. The user is then able to review and approve the form document before transmitting it as complete.
Another method for assisting a user in filling out an electronic form document is referred to as the xe2x80x9ctransactorxe2x80x9d method, which may be found, for example, at xe2x80x9cTransactor Networksxe2x80x9d located at http://www.transactor.net. This method differs from the wallet method in that the user is not required to download or install any software onto his or her computer. Instead, personal information items are input and stored in a database on a remote server, which is then accessed every time an electronic form document is to be filled. This remote server containing the personal information items is accessed through a browser window separate from the browser window containing the electronic form document to be filled. This method thus requires communication between separate browser windows.
A method for filling out an electronic form document using this transactor method is illustrated in FIG. 2. Independent Internet user 202, from a pool of random independent Internet users 201-206, opens a browser window 230 in his or her Internet browser program, depicted by arrow 251. User 202 then enters a request for a Web page containing an electronic form document 240 to be downloaded into browser window 230. This request is processed by the browser program, and a connection, depicted by arrow 252, is made with the appropriate remote Internet resource 210, typically an Internet Web server, selected from a pool of random remote Internet resources 210-212. Remote Internet resource 210 returns an HTML Web page containing electronic form document 240, depicted by arrow 253. This process may include the retrieval of other portions of the Web page from separate remote electronic resources, as described above in the ad server model. User 202 also opens another separate browser window 231 to activate the xe2x80x9ctransactorxe2x80x9d process, typically done through a bookmark. The browser program then makes a connection, depicted by arrow 255, with transactor server 220 to retrieve the user""s personal information items 241. Transactor server 220 returns personal information items 241 to the browser program in browser window 231, depicted by arrow 256. It should be noted that the process represented by arrows 254 through 256 may be completed before or after the process represented by arrows 251 through 253. Once both processes are complete, window 231 initiates communication with window 230 to begin the automated fill of electronic form document 240 in window 230. The windows communicate as necessary until form 240 is filled, depicted by double arrow 257. Filled electronic form document 242 is then displayed back to user 202 in browser window 230, depicted by arrow 258. User 202 is then able to review and approve filled electronic form document 242 before transmitting it as complete.
There are, however, several drawbacks to both the xe2x80x9cwalletxe2x80x9d and xe2x80x9ctransactorxe2x80x9d methods. Both methods require a substantial initial time investment in requiring a user to input all of his or her personal information items. In addition, the wallet method requires the user to download and install software to his or her computer. This is problematic in that the user has no access to this method when he or she uses any computer that does not have the wallet program installed and the user""s personal information items inputted. It is not only inconvenient to re-install and re-input items on every computer for which the user has access, but it is practically impossible for a computer being used by a user for the first time to have the user""s personal information items. While the transactor method attempts to overcome this deficiency of the wallet method through server-side databases, it requires cross-communication between windows, which is known in the art to compromise user security. In addition, the requirement of retrieving information from a server-side database during window cross-communication significantly slows down the automated electronic form document fill process.
As such, what is desired is a method and system for remote server-based applications to quickly and automatically fill out electronic form documents, thereby relieving the user of the burden of manually inputting data into such form documents and without requiring the user to be on any specific computer and without compromising user security. In other words, what is desired is a method and system which enables a computer user to automatically fill out electronic form documents from any computer or client location in a network at the simple click of a mouse. Also desirable and inherent in such a method and system is the ability to automatically fill out electronic form documents without requiring the user to download or install any type of permanent or resident software on any computer.
According to the present invention, methods, apparatus, and computer program products are disclosed for constructing and transmitting an executable software module on a personal information server, referred to as a privacy bank server, to a remote computer. The software module is constructed such that once received by a browser displaying a form, it is executed and user data is automatically inserted into the form. In one aspect of the present invention, a method for constructing a shippable software module on a personal information server suitable for execution on a remote computer for inserting data strings into an electronic form is described. A form mapping containing a set of associations between fields in the electronic form (xe2x80x9cnon-standard fieldsxe2x80x9d) and pre-named fields (xe2x80x9cstandard fieldsxe2x80x9d) on the personal information server is retrieved. Each mapping is associated with a registered electronic form. A raw data file containing data strings, each data string corresponding to a pre-named field is retrieved. Each raw data file is associated with a registered user. The form mapping is utilized to attach a data string to the field in the electronic form where the pre-named field and the field in the electronic form have been previously matched or mapped.
In one embodiment, an intended-practice condition associated with each non-standard field in the electronic form is compared to a use-preference condition associated with each pre-named or standard field. A data string is attached to the non-standard field in the electronic form when the intended-practice condition is less than or the same as the use-preference condition of the pre-named field. In another embodiment, the data string is not attached to the field in the electronic form when the intended-practice condition is greater than the use-preference condition of the pre-named field. In yet another embodiment, the form mapping is utilized to attach a data string to the field in the electronic form involving an examination of multiple negotiation objects for either an acceptance and decline message, where each negotiation object results from comparing data relating to the field in the electronic form to data relating to the pre-named field.
In another aspect of the invention, a server for enabling automatic insertion of user information into an electronic form having multiple fields on a remote computer capable of communicating with the server is described. The server contains a memory area storing a multiple raw data profiles where each raw data profile corresponds to a registered user of the privacy bank service. Another memory area stores multiple form mappings, each form mapping corresponding to a particular form registered with privacy bank service by a merchant or third-party vendor. A comparison module compares or xe2x80x9cnegotiatesxe2x80x9d user-preference data contained in the raw data profiles with practice-preference data contained in the form mappings. A software module constructor prepares and transmits a shippable program or software module that can be executed on a remote computer thereby inserting data strings into an electronic form on the remote computer.
In one embodiment, the raw data profile includes several standard field names, each standard field name having a corresponding data string and a use-preference data item determined by a registered user. Similarly, each form mapping includes multiple non-standard field names from the electronic form, where each non-standard field name is mapped to a standard field name and has a practice-preference data item. In yet another embodiment, a negotiation history module contains negotiation modules, each negotiation module containing an offer component and either an acceptance component or a decline component.